﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Sige
{
    public partial class frmCancelacionInscripcion : Form
    {
        SqlConnection cn_superbit;
        DataSet ds = new DataSet();

        string tipodocumento = "";

        public frmCancelacionInscripcion()
        {
            InitializeComponent();
        }

        private void frmCancelacionInscripcion_Load(object sender, EventArgs e)
        {
            Accesoadatos datos = new Accesoadatos();
            string rutaBDSuperbit = datos.getruta();
            cn_superbit = datos.ObtenerConexion(rutaBDSuperbit);
        }

         private void cargarTipoDocumento(ref string tipodocumento)
        {
            if (rbtnDNI.Checked)
                tipodocumento = "DU";
            if (rbtnLC.Checked)
                tipodocumento = "LC";
            if (rbtnLE.Checked)
                tipodocumento = "LE";
            if (rbtnPas.Checked)
                tipodocumento = "PS";
        }



         private bool buscarcursos()
     {
         string cmdsql = "select a.matricula,a.codigocomision,b.codigocurso,c.nombrecurso,b.fechainicio,b.turno from alumnosporcomision a inner join comisiones b  on  a.codigocomision=b.comision  inner join  curso  c  on   b.codigocurso=c.codigo   where a.documento='";
         string cmdsql1 = "' and a.tipodocumento='";
         string cmdsql2="'   and a.estado='true' and b.estado < 3";

         string clausula = cmdsql + txtDocumento.Text + cmdsql1 + tipodocumento + cmdsql2;
         SqlDataAdapter adaptador1 = new SqlDataAdapter(clausula, cn_superbit);
         adaptador1.Fill(ds, "cursosporpersona");

         if(ds.Tables["cursosporpersona"].Rows.Count > 0)
         return true;
         else
         {return false;}
         
     }

        private void txtDocumento_Leave(object sender, EventArgs e)
        {
            if (txtDocumento.Text != "")
            {

                string cmdsql = "select  apellido,  nombre from personas  where documento='";
                string cmdsql1 = "' and  tipodocumento='";


                string clausula = cmdsql + txtDocumento.Text + cmdsql1 + tipodocumento + "'";
                SqlDataAdapter adaptador = new SqlDataAdapter(clausula, cn_superbit);

                adaptador.Fill(ds, "persona");

                try
                {
                    if (ds.Tables["persona"].Rows.Count > 0)
                    {
                        txtApellidoAlumno.Text = ds.Tables["persona"].Rows[0][0].ToString();
                        txtNombreAlumno.Text = ds.Tables["persona"].Rows[0][1].ToString();
                    }
                    else
                    {
                        MessageBox.Show("Alumno Inexistente");
                        txtDocumento.Text = "";
                        txtDocumento.Focus();
                        return;
                    }

                }
                catch { }
                if (buscarcursos())
                {
                    dgvCursoPorAlumno.DataSource = ds.Tables["cursosporpersona"];
                    dgvCursoPorAlumno.Visible = true;
                }
                else
                {
                    MessageBox.Show("No existen inscripciones vigentes para " + txtNombreAlumno.Text + " " + txtApellidoAlumno.Text);
                    borrarDatosCargadosForm();
                    txtDocumento.Focus();
                }
            }   
    }


        private bool cancelarInscripcion()
        {
            if (txtMatricula.Text != "")
            {
                SqlCommand cmd = new SqlCommand();
                cmd.CommandType = System.Data.CommandType.Text;
                cmd.CommandText = "update alumnosporcomision set estado='false' where matricula = @matricula";

                Accesoadatos datos = new Accesoadatos();
                string rutaBDSuperbit = datos.getruta();
                cn_superbit = datos.ObtenerConexion(rutaBDSuperbit);

                cmd.Connection = cn_superbit;

                cmd.Parameters.AddWithValue("@matricula", txtMatricula.Text);
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch
                {
                    cn_superbit.Close();
                    MessageBox.Show("No pudo realizarse la cancelacion ");
                    return false;
                }
                cn_superbit.Close();
                return true;
            }
            return false;
        }

        private void borrarDatosCargadosForm()
        {
            tipodocumento = "";
            txtDocumento.Text = "";
            txtNombreAlumno.Text = "";
            txtMatricula.Text = "";
            txtApellidoAlumno.Text = "";
            txtComision.Text = "";
            try
            {
                ds.Tables["cursosporpersona"].Clear();
                ds.Tables["persona"].Clear();
            }
            catch { };
        }

        private void btnAtras_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            DialogResult sms = MessageBox.Show("Esta seguro desea salir de la aplicacion ?", "Salir de la Aplicacion ", MessageBoxButtons.YesNo);
            if (sms == DialogResult.Yes) // si devuelve Yes salgo aplicacion
                Application.Exit();
        }

        private void rbtnDNI_CheckedChanged(object sender, EventArgs e)
        {
            cargarTipoDocumento(ref tipodocumento);
        }

        private void rbtnPas_CheckedChanged(object sender, EventArgs e)
        {
            cargarTipoDocumento(ref tipodocumento);
        }

        private void rbtnLC_CheckedChanged(object sender, EventArgs e)
        {
            cargarTipoDocumento(ref tipodocumento);
        }

        private void rbtnLE_CheckedChanged(object sender, EventArgs e)
        {
            cargarTipoDocumento(ref tipodocumento);
        }

        private void dgvCursoPorAlumno_CellClick(object sender, DataGridViewCellEventArgs e)
        {

            if (dgvCursoPorAlumno.SelectedRows.Count > 0)
            {
                txtMatricula.Text = dgvCursoPorAlumno.SelectedRows[0].Cells[0].Value.ToString();
                txtComision.Text = dgvCursoPorAlumno.SelectedRows[0].Cells[1].Value.ToString();

            }
        }

        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            if (cancelarInscripcion())
            {

                MessageBox.Show("Inscripcion Nro " + txtMatricula.Text + " Cancelada");
                borrarDatosCargadosForm();
            }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            borrarDatosCargadosForm();
            try
            {
                ds.Tables["cursosporpersona"].Clear();
            }
            catch
            {
                return;
            }
        }

        private void pnlDocumento_Paint(object sender, PaintEventArgs e)
        {

        }

//botones atras,  salir, radiotuttoms tipodocumento



    }
}
